﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CANO.Data.DAOs
{
	public class LugarInfluenciaDAO
	{
		public int LugarInfluenciaID { get; set; }
		public string LugarInfluencia { get; set; }


		public static List<LugarInfluenciaDAO> getAll()
		{
			List<LugarInfluenciaDAO> listLugarInfluencia = new List<LugarInfluenciaDAO>();

			using (CANOPropiedadesDCDataContext context = new CANOPropiedadesDCDataContext())
			{

				var lugarInfluenciaCollection =
					from l in context.LugarInfluencia
					select l;

				foreach (var item in lugarInfluenciaCollection)
				{
					LugarInfluenciaDAO lugarInfluencia = new LugarInfluenciaDAO();
					lugarInfluencia.LugarInfluenciaID = item.LugarInfluenciaID;
					lugarInfluencia.LugarInfluencia = item.LugarInfluencia1;
					listLugarInfluencia.Add(lugarInfluencia);
				}
				return listLugarInfluencia;
			}
		}

		public static void create(string pLugarInfluencia)
		{
			using (CANOPropiedadesDCDataContext context = new CANOPropiedadesDCDataContext())
			{
				LugarInfluencia newLugarInfluencia = new LugarInfluencia();
				newLugarInfluencia.LugarInfluencia1 = pLugarInfluencia;
				newLugarInfluencia.LugarInfluenciaID = getId();

				context.LugarInfluencia.InsertOnSubmit(newLugarInfluencia);
				context.SubmitChanges();
			}
		}
		public static int createNew(string pLugarInfluencia)
		{
			using (CANOPropiedadesDCDataContext context = new CANOPropiedadesDCDataContext())
			{
				LugarInfluencia newLugarInfluencia = new LugarInfluencia();
				newLugarInfluencia.LugarInfluencia1 = pLugarInfluencia;
				newLugarInfluencia.LugarInfluenciaID = getId();

				context.LugarInfluencia.InsertOnSubmit(newLugarInfluencia);
				context.SubmitChanges();
				return newLugarInfluencia.LugarInfluenciaID;
			}
		}

		public static int GetIdByName(string sLugarInfluencia)
		{
			using (CANOPropiedadesDCDataContext context = new CANOPropiedadesDCDataContext())
			{
				var lugarInfluenciaColl =
					(from tt in context.LugarInfluencia
					where tt.LugarInfluencia1 == sLugarInfluencia
					select tt);

				return lugarInfluenciaColl.Single().LugarInfluenciaID;
			}
		}

		private static int getId()
		{
			using (CANOPropiedadesDCDataContext context = new CANOPropiedadesDCDataContext())
			{
				var lugarInfluenciaColl =
					from tt in context.LugarInfluencia
					select tt.LugarInfluenciaID;

				return lugarInfluenciaColl.Max() + 1;
			}
		}
	}
}
